(-partition-all avl-lines keys)))
(page-width 0) (n-pages 0)
page-cols pages keys/page page-widths)
- (dolist (col cols-w-widths)
- (if (<= (+ (car col) page-width) avl-width)
- (progn (push (cdr col) page-cols)
- (setq page-width (+ page-width (car col))))
- (when (> (length page-cols) 0)
- (push (which-key--join-columns page-cols) pages)
- (push (* (length page-cols) avl-lines) keys/page)
- (push page-width page-widths)
- (setq n-pages (1+ n-pages)
- page-cols (list (cdr col))
- page-width (car col)))))
- (when (> (length page-cols) 0)
- (push (which-key--join-columns page-cols) pages)
- (push (* (length page-cols) avl-lines) keys/page)
- (push page-width page-widths)
- (setq n-pages (1+ n-pages)))
- (list :pages (reverse pages) :page-height avl-lines
- :page-widths (reverse page-widths)
- :keys/page (reverse keys/page) :n-pages n-pages
- :tot-keys (cl-reduce '+ keys/page :initial-value 0))))
+ (if (> (car (car cols-w-widths)) avl-width)
+ (list :pages nil :page-height 0 :page-widths '(0)
+ :keys/page '(0) :n-pages 0 :tot-keys 0)
+ (dolist (col cols-w-widths)
+ (if (<= (+ (car col) page-width) avl-width)
+ (progn (push (cdr col) page-cols)
+ (setq page-width (+ page-width (car col))))
+ (when (> (length page-cols) 0)
+ (push (which-key--join-columns page-cols) pages)
+ (push (* (length page-cols) avl-lines) keys/page)
+ (push page-width page-widths)
+ (setq n-pages (1+ n-pages)
+ page-cols (list (cdr col))
+ page-width (car col)))))
+ (when (> (length page-cols) 0)
+ (push (which-key--join-columns page-cols) pages)
+ (push (* (length page-cols) avl-lines) keys/page)
+ (push page-width page-widths)
+ (setq n-pages (1+ n-pages)))
+ (list :pages (reverse pages) :page-height avl-lines
+ :page-widths (reverse page-widths)
+ :keys/page (reverse keys/page) :n-pages n-pages
+ :tot-keys (cl-reduce '+ keys/page :initial-value 0)))))
(defun which-key--create-pages (prefix-keys keys sel-win-width)
(let* ((max-dims (which-key--popup-max-dimensions sel-win-width))